From f6abe644795c2ca93a21e9c515d5b870cf74fb5d Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Tue, 11 Aug 1998 04:32:14 +0000 Subject: [PATCH] Applied gtk-pedersen-980727-0; added all logical operations to Tue Aug 11 00:35:56 1998 Owen Taylor * gdk/gdkgc.c gdk/gdktypes.h: Applied gtk-pedersen-980727-0; added all logical operations to gc->function. --- ChangeLog | 5 +++ ChangeLog.pre-2-0 | 5 +++ ChangeLog.pre-2-10 | 5 +++ ChangeLog.pre-2-2 | 5 +++ ChangeLog.pre-2-4 | 5 +++ ChangeLog.pre-2-6 | 5 +++ ChangeLog.pre-2-8 | 5 +++ gdk/gdkgc.c | 108 +++++++++++++++++++++++++++++++++++++++++++++ gdk/gdktypes.h | 27 +++++++++++- 9 files changed, 169 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 065a49e7e2..1a8d438390 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Aug 11 00:35:56 1998 Owen Taylor + + * gdk/gdkgc.c gdk/gdktypes.h: Applied gtk-pedersen-980727-0; + added all logical operations to gc->function. + Sun Aug 9 23:31:59 1998 Lars Hamann * gtk/gtkclist.c (adjust_scrollbars): Fix for resize bug. Call diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 065a49e7e2..1a8d438390 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,8 @@ +Tue Aug 11 00:35:56 1998 Owen Taylor + + * gdk/gdkgc.c gdk/gdktypes.h: Applied gtk-pedersen-980727-0; + added all logical operations to gc->function. + Sun Aug 9 23:31:59 1998 Lars Hamann * gtk/gtkclist.c (adjust_scrollbars): Fix for resize bug. Call diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 065a49e7e2..1a8d438390 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +Tue Aug 11 00:35:56 1998 Owen Taylor + + * gdk/gdkgc.c gdk/gdktypes.h: Applied gtk-pedersen-980727-0; + added all logical operations to gc->function. + Sun Aug 9 23:31:59 1998 Lars Hamann * gtk/gtkclist.c (adjust_scrollbars): Fix for resize bug. Call diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 065a49e7e2..1a8d438390 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,8 @@ +Tue Aug 11 00:35:56 1998 Owen Taylor + + * gdk/gdkgc.c gdk/gdktypes.h: Applied gtk-pedersen-980727-0; + added all logical operations to gc->function. + Sun Aug 9 23:31:59 1998 Lars Hamann * gtk/gtkclist.c (adjust_scrollbars): Fix for resize bug. Call diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 065a49e7e2..1a8d438390 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,8 @@ +Tue Aug 11 00:35:56 1998 Owen Taylor + + * gdk/gdkgc.c gdk/gdktypes.h: Applied gtk-pedersen-980727-0; + added all logical operations to gc->function. + Sun Aug 9 23:31:59 1998 Lars Hamann * gtk/gtkclist.c (adjust_scrollbars): Fix for resize bug. Call diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 065a49e7e2..1a8d438390 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +Tue Aug 11 00:35:56 1998 Owen Taylor + + * gdk/gdkgc.c gdk/gdktypes.h: Applied gtk-pedersen-980727-0; + added all logical operations to gc->function. + Sun Aug 9 23:31:59 1998 Lars Hamann * gtk/gtkclist.c (adjust_scrollbars): Fix for resize bug. Call diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 065a49e7e2..1a8d438390 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +Tue Aug 11 00:35:56 1998 Owen Taylor + + * gdk/gdkgc.c gdk/gdktypes.h: Applied gtk-pedersen-980727-0; + added all logical operations to gc->function. + Sun Aug 9 23:31:59 1998 Lars Hamann * gtk/gtkclist.c (adjust_scrollbars): Fix for resize bug. Call diff --git a/gdk/gdkgc.c b/gdk/gdkgc.c index e405c0eaf4..0b8f91266e 100644 --- a/gdk/gdkgc.c +++ b/gdk/gdkgc.c @@ -88,6 +88,42 @@ gdk_gc_new_with_values (GdkWindow *window, case GDK_XOR: xvalues.function = GXxor; break; + case GDK_CLEAR: + xvalues.function = GXclear; + break; + case GDK_AND: + xvalues.function = GXand; + break; + case GDK_AND_REVERSE: + xvalues.function = GXandReverse; + break; + case GDK_AND_INVERT: + xvalues.function = GXandInverted; + break; + case GDK_NOOP: + xvalues.function = GXnoop; + break; + case GDK_OR: + xvalues.function = GXor; + break; + case GDK_EQUIV: + xvalues.function = GXequiv; + break; + case GDK_OR_REVERSE: + xvalues.function = GXorReverse; + break; + case GDK_COPY_INVERT: + xvalues.function = GXcopyInverted; + break; + case GDK_OR_INVERT: + xvalues.function = GXorInverted; + break; + case GDK_NAND: + xvalues.function = GXnand; + break; + case GDK_SET: + xvalues.function = GXset; + break; } xvalues_mask |= GCFunction; } @@ -289,6 +325,42 @@ gdk_gc_get_values (GdkGC *gc, case GXxor: values->function = GDK_XOR; break; + case GXclear: + values->function = GDK_CLEAR; + break; + case GXand: + values->function = GDK_AND; + break; + case GXandReverse: + values->function = GDK_AND_REVERSE; + break; + case GXandInverted: + values->function = GDK_AND_INVERT; + break; + case GXnoop: + values->function = GDK_NOOP; + break; + case GXor: + values->function = GDK_OR; + break; + case GXequiv: + values->function = GDK_EQUIV; + break; + case GXorReverse: + values->function = GDK_OR_REVERSE; + break; + case GXcopyInverted: + values->function =GDK_COPY_INVERT; + break; + case GXorInverted: + values->function = GDK_OR_INVERT; + break; + case GXnand: + values->function = GDK_NAND; + break; + case GXset: + values->function = GDK_SET; + break; } switch (xvalues.fill_style) @@ -433,6 +505,42 @@ gdk_gc_set_function (GdkGC *gc, case GDK_XOR: XSetFunction (private->xdisplay, private->xgc, GXxor); break; + case GDK_CLEAR: + XSetFunction (private->xdisplay, private->xgc, GXclear); + break; + case GDK_AND: + XSetFunction (private->xdisplay, private->xgc, GXand); + break; + case GDK_AND_REVERSE: + XSetFunction (private->xdisplay, private->xgc, GXandReverse); + break; + case GDK_AND_INVERT: + XSetFunction (private->xdisplay, private->xgc, GXandInverted); + break; + case GDK_NOOP: + XSetFunction (private->xdisplay, private->xgc, GXnoop); + break; + case GDK_OR: + XSetFunction (private->xdisplay, private->xgc, GXor); + break; + case GDK_EQUIV: + XSetFunction (private->xdisplay, private->xgc, GXequiv); + break; + case GDK_OR_REVERSE: + XSetFunction (private->xdisplay, private->xgc, GXorReverse); + break; + case GDK_COPY_INVERT: + XSetFunction (private->xdisplay, private->xgc, GXcopyInverted); + break; + case GDK_OR_INVERT: + XSetFunction (private->xdisplay, private->xgc, GXorInverted); + break; + case GDK_NAND: + XSetFunction (private->xdisplay, private->xgc, GXnand); + break; + case GDK_SET: + XSetFunction (private->xdisplay, private->xgc, GXset); + break; } } diff --git a/gdk/gdktypes.h b/gdk/gdktypes.h index 67c05816c2..5ec44c2d4a 100644 --- a/gdk/gdktypes.h +++ b/gdk/gdktypes.h @@ -217,12 +217,37 @@ typedef enum * Copy: Overwrites destination pixels with the source pixels. * Invert: Inverts the destination pixels. * Xor: Xor's the destination pixels with the source pixels. + * Clear: set pixels to 0 + * And: source AND destination + * And Reverse: source AND (NOT destination) + * And Invert: (NOT source) AND destination + * Noop: destination + * Or: source OR destination + * Nor: (NOT source) AND (NOT destination) + * Equiv: (NOT source) XOR destination + * Xor Reverse: source OR (NOT destination) + * Copy Inverted: NOT source + * Xor Inverted: (NOT source) OR destination + * Nand: (NOT source) OR (NOT destination) + * Set: set pixels to 1 */ typedef enum { GDK_COPY, GDK_INVERT, - GDK_XOR + GDK_XOR, + GDK_CLEAR, + GDK_AND, + GDK_AND_REVERSE, + GDK_AND_INVERT, + GDK_NOOP, + GDK_OR, + GDK_EQUIV, + GDK_OR_REVERSE, + GDK_COPY_INVERT, + GDK_OR_INVERT, + GDK_NAND, + GDK_SET } GdkFunction; /* GC fill types. -- 2.30.2